#include "widget.h"

#include <QApplication>
//布局管理器
//水平布局管理器+垂直布局管理器
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}
/*
 * 布局管理器
 * 之前写的Qt的GUI上的控件都是通过绝对定位来定位的，不会随着窗口大小的改变而改变位置和大小
 * 也就是，之前写的是通过坐标实现的。写死的
 * 布局管理器可以让控件的大小和位置随着窗口的改变而自适应的发生改变。
 * Qt中的布局管理器分为：
 *      垂直布局
 *      水平布局
 *      网格布局
 *      表单布局
 *
 * QVBoxLayout垂直布局管理器控件
 * 属性
 * layoutLeftMargin属性：左侧边距
 * layoutRightMargin属性：右侧边距
 * layoutTopMargin属性：上方边距
 * layoutBottomMargin属性：下方边距
 * layoutSpacing属性：相邻元素之间的间距
 * 这些属性都是用于调整布局管理器中的控件与布局管理器边缘的距离的，还可以调整内部元素与元素之间的布局
 *
 * 每个widget中只能设置一个布局管理器
 * 通过代码的方式创建布局管理器时，此时只是单单创建了一个布局管理器对象
 * 如果使用Qt Designer 图形化界面方式创建布局管理器时，此时，会先创建一个Widget，再在这个widget中添加一个布局管理器
 * 所以，通过这种图形化界面创建布局管理器时，它的大小和位置是固定的，无法做到自适应改变。
 * 因为：每个widget中只能设置一个布局管理器
 * QVBoxLayout垂直布局管理器控件对象表示的是布局管理器的本体，外面自动创建一个widget控件，每个布局管理器里面又可以包含若干个item(也就是按钮)
 *
 * 无论是先拖动想要设置在布局管理器中的控件，还是先拖动布局管理器，都可以
 * 可以选择想要在布局管理器中管理的控件，然后在上方选择垂直布局即可将这些控件管理到布局管理器中
 *
 * QHBoxLayout水平布局管理器控件
 * 属性
 * layoutLeftMargin属性：左侧边距
 * layoutRightMargin属性：右侧边距
 * layoutTopMargin属性：上方边距
 * layoutBottomMargin属性：下方边距
 * layoutSpacing属性：相邻元素之间的间距
 *
 *  虽然一个widget中只能有一个布局管理器，但是，布局管理器内部可以嵌套布局管理器
*/
